// 1. 先拿到router 里面的动态路由
import { asyncRoutes, constantRoutes } from '@/router'

const state = {
  // 这里用来传数据
  routes: []
}
const mutations = {
  setRoutes(state, data) {
    // 这里存菜单，不能只是存入筛选后动态结果
    // 而且要拼上静态才行
    state.routes = [...constantRoutes, ...data]
  }
}
const actions = {
  // 封装筛选功能
  fiterRoutes(store, menus) {
    // 根据用户的权限列表(调用时传进来)
    // 动态路由的数组
    // 一起筛选的出有权限的路由列表
    // console.log('actions 的调用')
    const routes = asyncRoutes.filter(el => menus.includes(el.name))
    // console.log(routes)
    // 筛选出结果以后，要恢复菜单
    store.commit('setRoutes', routes)

    // 这边返回是给导航守卫恢复路由配置使用的跟菜单无关
    return routes
  }
}
export default {
  namespaced: true,
  state,
  mutations,
  actions
}
